package goruntine

type Worker interface {
	Process(interface{}) interface{}
	Terminate()
}

type WorkRequest struct {
	jobsChan chan<- interface{}
	retChan  <-chan interface{}
}

type WorkerWrapper struct {
	worker  Worker
	reqChan chan<- WorkRequest
}

func NewWorkerWrapper(worker Worker, reqChan chan<- WorkRequest) *WorkerWrapper {
	w := &WorkerWrapper{
		worker:  worker,
		reqChan: reqChan,
	}
	go w.run()
	return w
}

func (w *WorkerWrapper) run() {

}

func (w *WorkerWrapper) stop() {

}

func (w *WorkerWrapper) interrupt() {

}
